package org.smart4j.chapter02.util;

//转型操作工具类
public final class CastUtil {
    public static  String castString(Object obj){
        return  CastUtil.castString(obj,"");
    }
    //转为String型
    public static  String castString(Object obj,String defaultValue){
        return obj!=null?String.valueOf(obj):defaultValue;
    }
    //转为double型
    public  static  double castDouble(Object obj){
        return CastUtil.castDouble(obj,0);
    }
    public  static  double castDouble(Object obj,double defaultValue){
      double doubleValue=defaultValue;
      if (obj!=null){
          String strValue=castString(obj);
            if (StringUtil.isNotEmpty(strValue)){
                try{
                    doubleValue=Double.parseDouble(strValue);
                }catch (NumberFormatException e){
                    doubleValue=defaultValue;
                }
            }
      }
      return defaultValue;
    }
    public static  long castLong(Object obj){
        return CastUtil.castLong(obj);
    }
    public  static  long castLong(Object obj,long defaultValue) {
        long longValue = defaultValue;
        if (obj != null) {
            String strValue = castString(obj);
            if (StringUtil.isNotEmpty(strValue)) {
                try {
                    longValue=Long.parseLong(strValue);
                }catch (NumberFormatException e){
                    longValue=defaultValue;
                }

            }
        }
        return longValue;
    }
    public static  int castInt(Object obj){
        return  CastUtil.castInt(obj);
    }
    public  static int castInt(Object obj,int defaultValue){
        int intValue=defaultValue;
        if (obj!=null){
            String strValue=castString(obj);
            if (StringUtil.isNotEmpty(strValue)){
                try {
                    intValue=Integer.parseInt(strValue);
                }catch(NumberFormatException e){
                    intValue=defaultValue;
                }

            }
        }
        return  intValue;
    }

    public static boolean castBoolean(Object obj){
        return  CastUtil.castBoolean(obj);
    }
    public  static  boolean castBoolean(Object obj,boolean defaultValue){
        boolean booleanValue=defaultValue;
        if (obj!=null){
            booleanValue=Boolean.parseBoolean(castString(obj));
        }
        return  booleanValue;
    }
}
